﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Cofe.Core;

namespace Cofe.Web.Feed
{
    public interface IFeedService : ICofeService
    {
        IFeedFileSystemHelper FileSystem { get; }
    }

    public interface IFeedService<T> : IFeedService
        where T : EventArgs
    {
        Dictionary<int, FeedId> KnownFeedId { get; }
        FeedId RecentFeedId { get; }
        
        event EventHandler<FeedChangedEventArgs> RecentFeedChanged;
        void NotifyRecentFeedChanged(object sender, FeedChangedEventArgs eventArgs);
        
        IFeedLinkHelper<T> Links { get; }
        IFeedBuilder<T> Builder { get; }
        IFeedUpdater<T> Updater { get; }
        IFeedRepository<T> Repository { get; }
    }
}
